<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"
	contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String username = null;
String li = "";
Object o = session.getAttribute("username");
if(o != null) {
	username = o.toString();
	li = "<img onclick=\"location.href='" + basePath + "user/user_logout'\" src=\"images/logout.png\" style=\"height: 24px; cursor:pointer;\"/>";
} else {
	username = "登录";
}

%>
<!DOCTYPE html>
<html>
<head>
<title>使用文档</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="The Opoiki Responsive web template, Bootstrap Web Templates, Flat Web Templates, Andriod Compatible web template, 
Smartphone Compatible web template, free webdesigns for Nokia, Samsung, LG, SonyErricsson, Motorola web design" />
<script type="application/x-javascript"> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script>
<!-- bootstrap-css -->
	<link href="css/bootstrap.css" rel="stylesheet" type="text/css" media="all" />
<!--// bootstrap-css -->
<!-- css -->
	<link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
	<link rel="stylesheet" href="css/core.css" type="text/css" media="all" />
<!--// css -->
<!-- js -->
	<script type="text/javascript" src="js/jquery.min.js"></script>
<!-- js -->
<!--fonts-->
	<link href='http://fonts.useso.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<!--/fonts-->
	<!-- start-smoth-scrolling -->
		<script type="text/javascript" src="js/move-top.js"></script>
		<script type="text/javascript" src="js/easing.js"></script>
		<script type="text/javascript">
			jQuery(document).ready(function($) {
				$(".scroll").click(function(event){		
					event.preventDefault();
					$('html,body').animate({scrollTop:$(this.hash).offset().top},1000);
				});
				
				$("#api-list li").click(function(){
					 var lid = $(this).index();
					 $("#api-list li").each(function(index){
						if(lid == index) {
							$(this).attr('class', 'navi-item pr active');
							$('#content' + index).attr('style', 'display: block');
						} else {
							$(this).attr('class', 'navi-item pr');
							$('#content' + index).attr('style', 'display: none');
						}
					});
				});
			});
		</script>
		
	<!-- start-smoth-scrolling -->

</head>
<body>
<!--header-->
<div class="header" style="background:#4038ae">
	<div class="container">
		<div class="header-left">
			<a href="<%=basePath%>index.jsp"><img src="<%=basePath%>images/logo.png" alt=""/></a>
		</div>
		<div class="header-right">
			<span class="menu">MENU</span>
					<ul id="menu_ul" class="nav1">
						<li><a href="<%=basePath%>index.jsp">首页</a></li>
						<li><a href="<%=basePath%>index.jsp#about">简介</a></li>	
						<li><a href="<%=basePath%>index.jsp">关于我们</a></li>
						<li><a class="active" href="<%=basePath%>document.jsp">使用文档</a></li>
						<li>
							<a id="menu_login" href="<%=basePath%>user/user_main" ><%=username %></a>
							<%=li %>
						</li>
					</ul>
				<!-- script for menu -->
					<script> 
						$( "span.menu" ).click(function() {
						$( "ul.nav1" ).slideToggle( 300, function() {
						 // Animation complete.
						});
						});
					</script>
				<!-- //script for menu -->
		</div>
		<div class="clearfix"></div>
	</div>
</div>
<!-- contact-page -->
<div style="padding: 30px 0px;">
	<div class="container">
		<div class="contact-form">
			<!-- <div class="contact-info">
				<h3><span>DOCUMENT</span></h3>
			</div> -->
			<div class="contact-left" style="width: 20%; margin-left: 30px">
				<ul id="api-list" class="navi-list" style="padding-left: 0px">
					<li class="navi-item pr active">
						<h5 class="navi-title">网站接入概述</h5>
					</li>
					<li class="navi-item pr ">
				    	<h5 class="navi-title">授权登录流程</h5>
					</li>
					<li class="navi-item pr ">
						<h5 class="navi-title">学生信息获取</h5>
					</li>
					<li class="navi-item pr ">
						<h5 class="navi-title">请求错误列表</h5>
					</li>
					<li class="navi-item pr ">
							<h5 class="navi-title">demo示例</h5>
					</li>
				</ul>
			</div>
			<div class="contact-right" style="width: 73%">
				<div id="content0" class="content" style="display: block">
            		<div class="section">
	           			<div class="subsection">
	           				<h1>网站接入概述</h1>
		            	</div>
	             		<div class="subsection">
	             			<h2>1. 开发者注册</h2>
	                		<p>开发者可以通过<a href="<%=basePath%>user/user_main">登录</a>界面中的注册按钮跳转至<a href="<%=basePath%>user/regist.jsp">注册</a>页面注册开发者账号。</p>
							<p>建议一个项目组使用一个开发者账号，以免开发组成员离职而造成不必要的麻烦。</p>
							<img src="images/doc_regiest.png" style="width:300px"/>
							<p>注：“您的网站应用地址”为开发者网站外网可访问的URL地址，管理员将审核您的网站。</p>
	              		</div>
	              		<hr>
	              		<div class="subsection">
							<h2>2. 网站审核</h2>
							<p>网站内容必须满足：</p>
							<p>1. 符合国家法律法规以及道德标准，传播内容健康向上，能给用户以正确的价值观引导；</p>
							<p>2. 无色情、反动、暴力等违反中华人民共和国任何法律法规的内容；</p>
							<p>3. 不准含有虚拟物品或衍生产品交易的内容、不准含有模仿中奖信息等钓鱼网站惯用的诈骗信息。</p>
						</div>
						<hr>
						<div class="subsection">
							<h2>3. 审核时间</h2>
							<p>接入申请审核：</p>
							<P>1. 开发者提交接入申请后1-3个工作日内，管理员完成审核并反馈审核结果。
							（申请通过或者被驳回均会以自动邮件方式告知。如果被驳回，驳回理由会在邮件中说明。）</P>
							<P>2. 如果审核未通过，开发者对驳回理由有异议，可通过邮件提交申诉申请，提交申请后1-3个工作日内，
							管理员完成审核并反馈审核结果。（申请通过或者被驳回均会以自动邮件方式告知。如果被驳回，驳回理由会在邮件中说明。）</P>
							<P>3. 如果申诉未通过，请联系管理员QQ：346274420。</P>
						</div>
            		</div>
            	</div>
            	<div id="content1" class="content" style="display: none">
            		<div class="section">
	           			<div class="subsection">
	           				<h1>授权登录流程</h1>
		            	</div>
	             		<div class="subsection">
	             			<h2>1. 获取AccessToken</h2>
	                		<p>开发者通过账号和密码获取访问令牌（AccessTocken），令牌的有效时间为12小时。</p>
	                		<p>令牌用于跳转用户登录页面和获取获取学生信息，令牌只有申请用户使用才有效。</p>
	                		<p>请求地址：<%=basePath%>getAccessToken</p>
	                		<p>请求方法：GET/POST</p>
							<table class="list">
							    <tr><td class="lbl"><b>参数名</b></td><td class="desc"><b>描述</b></td></tr>
					            <tr><td class="lbl">username</td><td class="desc">开发者账号用户名</td></tr>
						        <tr><td class="lbl">password</td><td class="desc">开发者账号密码</td></tr>
    						</table>
    						<p>JSON返回示例：</p>
<pre class="codeExampleCS">
{
    "accessToken":"8271FE44879F9F68959AE0403AA10B62",
    "errorResult":"",
    "status":"1"
}
</pre>
	              		</div>
	              		<hr>
	              		<div class="subsection">
							<h2>2. 学生登录授权</h2>
							<p>开发者需要发送请求跳转至学生授权页面，学生输入正确的教务系统账号密码后，系统将回调请求页面，并以参数形式附带返回的UID。</p>
							<p>发送请求的页面必须和开发者账号中网站应用地址的域名一致，否则将提示令牌不合法。</p>
							<p>UID为区分不同学生的唯一标识，不同开发者对同一个学生授权得到的UID均不同，开发者之间UID不可共享，开发者可保存UID用作该学生的唯一标识。开发者获取学生信息需要UID和有效的AccessToken。</p>
							<p>请求地址：<%=basePath%>interface/requestLogin</p>
							<p>请求方法：GET</p>
							<table class="list">
							    <tr><td class="lbl"><b>参数名</b></td><td class="desc"><b>描述</b></td></tr>
					            <tr><td class="lbl">accessToken</td><td class="desc">开发者<b>步骤1</b>中获取的AccessTocken</td></tr>
    						</table>
    						<p>学生授权登录页面：</p>
    						<img src="images/doc_stuLogin.jpg" style="width:830px"/>
    						<p style="margin-top:15px;">回调地址：开发者请求学生授权发出请求的地址</p>
	                		<p>回调方法：GET</p>
							<table class="list">
							    <tr><td class="lbl"><b>参数名</b></td><td class="desc"><b>描述</b></td></tr>
					            <tr><td class="lbl">UID</td><td class="desc">区分不同学生的唯一标识</td></tr>
    						</table>
	    				</div>
            		</div>
            	</div>
            	<div id="content2" class="content" style="display: none">
            		<div class="section">
	           			<div class="subsection">
	           				<h1>学生信息获取</h1>
		            	</div>
	             		<div class="subsection">
	             			<h2>1. 学生个人信息</h2>
	                		<p>获取学生个人信息需要AccessToken和UID，AccessToken和UID的获取请参照“学生登录授权”。</p>
		              		<p>请求地址：<%=basePath%>interface/getStuInfo</p>
		              		<p>请求方法：GET</p>
		              		<table class="list">
								<tr><td class="lbl"><b>参数名</b></td><td class="desc"><b>描述</b></td></tr>
						        <tr><td class="lbl">uid</td><td class="desc">区分不同学生的唯一标识</td></tr>
						        <tr><td class="lbl">accessToken</td><td class="desc">开发者用账号密码获取的临时访问令牌</td></tr>
	    					</table>
	    					<p>JSON返回示例：</p>
<pre class="codeExampleJS">
{
    "data":{
        "sex":"男",
        "phone":"13798975341",
        "name":"黄瑞滨",
        "college":"计算机学院",
        "grade":"2012",
        "className":"12软件工程5班",
        "entranceDate":"20120912",
        "professional":"软件工程"
    },
    "result":"success"
}
</pre>
	    				</div>
	    				<div class="subsection">
	             			<h2>2. 学生考试成绩</h2>
	             			<p>获取学生成绩需要AccessToken和UID，AccessToken和UID的获取请参照“学生登录授权”。</p>
		              		<p>请求地址：<%=basePath%>interface/getScores</p>
		              		<p>请求方法：GET</p>
		              		<table class="list">
								<tr><td class="lbl"><b>参数名</b></td><td class="desc"><b>描述</b></td></tr>
						        <tr><td class="lbl">uid</td><td class="desc">区分不同学生的唯一标识</td></tr>
						        <tr><td class="lbl">accessToken</td><td class="desc">开发者用账号密码获取的临时访问令牌</td></tr>
	    					</table>
	    					<p>JSON返回示例：</p>
<pre class="codeExampleJS">
{
    "data":[
        {
            "schoolYear":"2012-2013",
            "courType":"必修课",
            "term":"1",
            "gradePoint":"4.70",
            "repairScore":" ",
            "score":"97",
            "courName":"C语言程序设计（A）",
            "makeupScore":" ",
            "credit":"4.0",
            "courID()":"02120400"
        }, {
            schoolYear":"2012-2013",
            "courType":"实践课",
            "term":"1",
            "gradePoint":"4.50",
            "repairScore":" ",
            "score":"优秀",
            "courName":"C语言程序设计课程实践",
            "makeupScore":" ",
            "credit":"1.0",
            "courID()":"02110990"
        }
    ],
    "result":"success"
}
</pre>
	             		</div>
            		</div>
            	</div>
            	<div id="content3" class="content" style="display: none">
            		<div class="section">
	           			<div class="subsection">
	           				<h1>请求错误列表</h1>
	           			</div>
	           			<div class="subsection">
	           				<h2>1. 获取AccessToken</h2>
	           				<p>请求错误返回JSON示例：</p>
<pre class="codeExampleCS">
{
    "accessToken":"",
    "errorResult":"Account Error",
    "status":"0"
}
</pre>
		    				<table class="list">
	      <tr><td class="lbl"><b>errorResult</b></td><td class="desc"><b>描述</b></td></tr>
	      <tr><td class="lbl">account error</td><td class="desc">账户验证失败,请确认您的账户正确，并且有接口使用权限</td></tr>
	      <tr><td class="lbl">server error</td><td class="desc">服务器异常</td></tr>
	    					</table>
    					</div>
    					<div class="subsection">
    						<h2>2. 学生登录授权</h2>
    						<p>请求错误返回JSON示例：</p>
<pre class="codeExampleCS">
{
    "data":"accessToken error or overdued",
    "result":"error"
}
</pre>
							<table class="list">
	      <tr><td class="lbl"><b>data</b></td><td class="desc"><b>描述</b></td></tr>
	      <tr><td class="lbl">accessToken error or overdued</td><td class="desc">AccessToken过期或不合法</td></tr>
	    					</table>
    					</div>
    					<div class="subsection">
    						<h2>3. 学生信息获取</h2>
    						<p>请求错误返回JSON示例：</p>
<pre class="codeExampleCS">
{
    "data":"network error",
    "result":"error"
}
</pre>
							<table class="list">
	      <tr><td class="lbl"><b>data</b></td><td class="desc"><b>描述</b></td></tr>
	      <tr><td class="lbl">network error</td><td class="desc">服务器网络异常</td></tr>
	      <tr><td class="lbl">accessToken error</td><td class="desc">服务器网络异常</td></tr>
	    					</table>
    					</div>
            		</div>
            	</div>
				<div id="content4" class="content" style="display: none">
            		<div class="section">
	           			<div class="subsection">
	           				<h1>demo示例</h1>
	           				<a href="test/test.jsp">在线演示</a>
	           			</div>
	           		</div>
	           	</div>
			</div>
		</div>
	</div>
</div>
<%@ include file="public/footer.jsp" %>
<!-- smooth scrolling -->
	<script type="text/javascript">
		$(document).ready(function() {
		/*
			var defaults = {
			containerID: 'toTop', // fading element id
			containerHoverID: 'toTopHover', // fading element hover id
			scrollSpeed: 1200,
			easingType: 'linear' 
			};
		*/								
		$().UItoTop({ easingType: 'easeOutQuart' });
		});
	</script>
	<a href="#" id="toTop" style="display: block;"> <span id="toTopHover" style="opacity: 1;"> </span></a>
<!-- //smooth scrolling -->
</body>
</html>